#ifndef FIGHTER_H
#define FIGHTER_H

#include "Pnj.h"


class Inventaire;

class Fighter : public Pnj
{
    public:
        Fighter(string n = "", string s = "", string f = "zombie", string m = "zombie", int pv = 125, int pvMax = 125, int force = 10, int defense = 10, int level = 1, int exp = 0, int expTotale = 300, int pm=0);
        virtual ~Fighter();
        unsigned int getPv();
        void setPv(unsigned int val);
        unsigned int getPvMax();
        void setPvMax(unsigned int val);
        unsigned int getPm();
        void setPm(unsigned int val);
        unsigned int getForce();
        void setForce(unsigned int val);
        unsigned int getDefense();
        void setDefense(unsigned int val);
        unsigned int getLevel();
        void setLevel(unsigned int val);
        unsigned int getExp();
        void setExp(unsigned int val);
        unsigned int getExpTotale();
        void setExpTotale(unsigned int val);

        void calculerExpTotale();

        void AjouterObjet(string nom, int quantite = 1);
        int getNbObjets();
        string getNomObjet(int i);
        int getQtObjet(int i);

        void useObject(int i, Fighter& perso);
        void useObject(string name, Fighter& perso);
        int getNumObjetsPossedes();
        void dropObject(int i);
        void resetObject();

        inline string getLinkHead() {return linkPnjHead;}
        inline string getLinkMovement() {return linkPnjMovement;}

        //bool askAnim(int d, bool moveOn);

    private:
        unsigned int pv;
        unsigned int pvMax;
        unsigned int pm;
        unsigned int force;
        unsigned int defense;
        unsigned int level;
        unsigned int exp;
        unsigned int expTotale;
        Inventaire* inventaire;
};

#endif // FIGHTER_H
